home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 7: Sunsite / Linux Cubed Series 7 - Sunsite Vol 1.iso / system / shells / kiss-0.11 / kiss-0 / kiss / src / dokill.c < prev    next >
C/C++ Source or Header  |  1995-03-23  |  699b  |  34 lines

  1. #include "kiss.h"
  2.  
  3. int dokill (Stringstack s)
  4. {
  5.     register int
  6.     i,
  7.     ret = 0;
  8.     int
  9.     sig,
  10.     pid;
  11.     
  12.     if (s.nstr < 3)
  13.     error ("Bad commandline.\n"
  14.            "Usage: %s -SIG processnr [processnr..]\n"
  15.            "Where:\n"
  16.            "    -SIG: signal to send to process\n"
  17.            "    processnr: process to signal\n"
  18.            , progname);
  19.  
  20.     if (! sscanf (s.str [1], "%d", &sig))
  21.     error ("bad signal \"%s\"", s.str [1]);
  22.     sig = -sig;
  23.     
  24.     for (i = 2; i < s.nstr; i++)
  25.     {
  26.     if (! sscanf (s.str [i], "%d", &pid))
  27.         ret += warning ("bad processnr \"%s\"", s.str [i]);
  28.     else if (kill (pid, sig))
  29.         ret += warning ("problem signalling process \"%d\"", pid);
  30.     }
  31.     
  32.     return (ret);
  33. }
  34.